// pages/logs/logs.js
Page({
  data: {
    // 日志大小信息
    logSizes: {
      available: false,
      partitionSize: 0,
      logSize: 0
    },
    
    // 下载状态
    downloadState: '',
    downloadProgress: 0,
    
    // 错误信息
    errorTitle: '',
    errorMessage: '',
    
    // 下载状态枚举
    downloadStates: {
      INIT: '正在初始化下载...',
      DOWNLOAD: '正在下载...',
      PREPARING: '正在准备文件...',
      READY: '文件已准备就绪！',
      ERROR: '下载失败'
    }
  },

  onLoad: function (options) {
    this.initPage();
  },

  onShow: function () {
    this.updateData();
  },

  // 初始化页面
  initPage: function () {
    this.updateData();
  },

  // 更新数据
  updateData: function () {
    // 检查设备连接状态
    const deviceInfo = wx.getStorageSync('deviceInfo');
    if (deviceInfo && deviceInfo.connected) {
      this.fetchLogSizes();
    } else {
      this.setData({
        'logSizes.available': false,
        errorTitle: '设备未连接',
        errorMessage: '请先连接设备后再查看日志信息'
      });
    }
  },

  // 获取日志大小
  fetchLogSizes: function () {
    // 模拟获取日志大小
    // 在实际应用中，这里应该调用蓝牙API获取真实的日志大小
    setTimeout(() => {
      this.setData({
        'logSizes.available': true,
        'logSizes.partitionSize': 1024000, // 1MB
        'logSizes.logSize': 512000 // 512KB
      });
    }, 1000);
  },

  // 获取设备日志
  getDeviceLogs: function () {
    if (!this.data.logSizes.available) {
      this.showError('日志不可用', '设备日志功能当前不可用');
      return;
    }

    // 导航到下载页面
    wx.navigateTo({
      url: '/pages/download-logs/download-logs'
    });
  },

  // 开始下载
  startDownload: function () {
    this.setData({
      downloadState: this.data.downloadStates.INIT,
      downloadProgress: 0,
      errorTitle: '',
      errorMessage: ''
    });

    // 模拟下载过程
    this.simulateDownload();
  },

  // 模拟下载过程
  simulateDownload: function () {
    let progress = 0;
    const interval = setInterval(() => {
      progress += Math.random() * 10;
      
      if (progress >= 100) {
        progress = 100;
        clearInterval(interval);
        this.downloadComplete();
      }

      let state = this.data.downloadStates.DOWNLOAD;
      if (progress > 80) {
        state = this.data.downloadStates.PREPARING;
      }

      this.setData({
        downloadProgress: Math.floor(progress),
        downloadState: state
      });
    }, 200);
  },

  // 下载完成
  downloadComplete: function () {
    this.setData({
      downloadState: this.data.downloadStates.READY,
      downloadProgress: 100
    });

    // 显示分享选项
    setTimeout(() => {
      this.showShareOptions();
    }, 1000);
  },

  // 显示分享选项
  showShareOptions: function () {
    wx.showActionSheet({
      itemList: ['分享日志文件', '保存到本地', '取消'],
      success: (res) => {
        switch (res.tapIndex) {
          case 0:
            this.shareLogFile();
            break;
          case 1:
            this.saveLogFile();
            break;
        }
      }
    });
  },

  // 分享日志文件
  shareLogFile: function () {
    // 模拟分享功能
    wx.showToast({
      title: '分享功能开发中',
      icon: 'none'
    });
  },

  // 保存日志文件
  saveLogFile: function () {
    // 模拟保存功能
    wx.showToast({
      title: '文件已保存',
      icon: 'success'
    });
  },

  // 生成错误报告
  takeBugReport: function () {
    wx.showModal({
      title: '生成错误报告',
      content: '此功能将生成系统错误报告，包含设备状态和错误信息。是否继续？',
      success: (res) => {
        if (res.confirm) {
          this.generateBugReport();
        }
      }
    });
  },

  // 生成错误报告
  generateBugReport: function () {
    wx.showLoading({
      title: '正在生成报告...'
    });

    // 模拟生成错误报告
    setTimeout(() => {
      wx.hideLoading();
      
      // 收集系统信息
      const systemInfo = wx.getSystemInfoSync();
      const deviceInfo = wx.getStorageSync('deviceInfo');
      
      const bugReport = {
        timestamp: new Date().toISOString(),
        systemInfo: systemInfo,
        deviceInfo: deviceInfo,
        appVersion: '1.0.0',
        logs: this.data.logSizes
      };

      // 保存错误报告
      wx.setStorageSync('bugReport', bugReport);
      
      wx.showModal({
        title: '报告生成完成',
        content: '错误报告已生成，您可以在设置中查看或分享。',
        showCancel: false
      });
    }, 2000);
  },

  // 显示错误信息
  showError: function (title, message) {
    this.setData({
      errorTitle: title,
      errorMessage: message
    });
  },

  // 清除错误信息
  clearError: function () {
    this.setData({
      errorTitle: '',
      errorMessage: ''
    });
  },

  // 页面卸载
  onUnload: function () {
    // 清理资源
  }
});